package Futbol_Liga;
/**
 * Klase honek Jarduera guztien zerrenda dauka bere baitan(gola klasekoa eta txartela klasekoak), zerrenda generiko motakoa da. 
 * Klase honen barneko metodoekin taldeen golak zenbatu ahalko ditugu eta baita jokalariena ere.
 * @author Txantxangorriak
 *
 */
import java.util.ArrayList;
import java.util.Iterator;

public class JardueraZerrenda {
	
	private ZerrendaGen<Jarduera> jarduerak;
	/**
	 * metodo eraikitzailea
	 * 
	 */
	public JardueraZerrenda() {
			jarduerak=new ZerrendaGen<Jarduera>();
	}

	/**
	 * Talde baten izena emanda, talde horren golak zenbatu egiten ditu
	 * @param pIz
	 * @return int
	 */
	public int taldeaGolakZenbatu(String pIz){
		Iterator<Jarduera> it= jarduerak.getIteratzailea();
		TaldeZerrenda tz=TaldeZerrenda.getTaldeZerrenda();
		int kont=0;
		Jarduera jar;
		
		while(it.hasNext()){
		jar=it.next();
		
		    if(jar instanceof Gola && tz.taldekoa(jar.getJokalari().getIzena(),pIz)){
		    	kont++;
		    }
		}
		return kont;
	}
	/**
	 * Metodo honekin jarduera bat gehitu egiten da zerrendara
	 * @param pJar
	 */
	public void gehituJarduera(Jarduera pJar){
		jarduerak.osagaiaGehitu(pJar);
	}
	/**
	 * Metodo honekin jokalari baten golak lortu egiten dira
	 * @param jokalariak
	 * @param golak
	 */
	public void lortuJokalarienGolak(ArrayList<Jokalaria> jokalariak, ArrayList<Integer> golak) {
		
		Iterator<Jarduera> it= jarduerak.getIteratzailea();
		Jarduera jar;
		while(it.hasNext()){
		jar=it.next();
		    if(jar instanceof Gola){
		    	
		    	this.gehituGola(jar,jokalariak, golak);
		    	
		    }
		}
	}
	

	/**
	 * Metodo honekin golak gehitu egiten dira.
	 * @param pJar
	 * @param jokalariak
	 * @param golak
	 */
	private void gehituGola(Jarduera pJar, ArrayList<Jokalaria> jokalariak, ArrayList<Integer> golak) {
		
		int gola=0;
		if(jokalariak.size()==0){
			jokalariak.add(pJar.getJokalari());
			golak.add(1);
		}
		for(int i=0; i>jokalariak.size();i++)
		{
			if(pJar.getJokalari().getIzena()==jokalariak.get(i).getIzena()){
				gola=golak.get(i);
				golak.set(i, (gola+1) );
			}
		}
	}
	/**
	 * Zerrendaren osagai kopurua lortzen da
	 * @return int
	 */
	public int size() {
		return jarduerak.getOsagaiKop();
	}
		
	
}
